Battery pack management

ABSTRACT

A battery pack management system provides information such as remaining capacity and/or run time to empty for a battery. A time taken for a battery voltage to drop a threshold amount is measured and used to determine a remaining capacity of the battery. The time may be associated with a temperature and current of the battery. The remaining capacity of a battery is calculated by monitoring a discharge of the battery. For example, current drawn from the battery is monitored over a period of time and an initial amount by which the battery has been discharged is calculated. Compensation of this initial amount is carried out in order to take into account factors such as temperature, self-discharge rate and age of the battery.

TECHNICAL FIELD

Embodiments relate to battery pack management systems and particularly,but not exclusively, to determining characteristics of a battery forexample a run time to empty and/or remaining capacity of a battery.

BACKGROUND

Battery pack management systems exist in order to monitor battery usageof a device. Battery pack management systems may provide, for example,information regarding a remaining capacity of a battery and/or aremaining time for which the battery can provide power without recharge.Such systems may allow for example a device to save data before power islost.

A simplistic way of monitoring the remaining capacity of the battery ismonitoring the current drawn from the battery over a period of time.However this may be inaccurate because factors such as a self-dischargerate and coulombic efficiency may affect the level of charge in thebattery.

Some systems may monitor the chemical make-up and weight of the batteryin order to more accurately estimate a remaining capacity of thebattery. For these systems to work, detailed information of the batteryneeds to be available regarding the chemical make-up of the battery andspecial hardware needs to be incorporated with the battery.

SUMMARY

According to a first aspect, a method comprises: determining a pluralityof times corresponding to a change in voltage of a battery, each timeassociated with a condition of the battery; and calculating a remainingtime to empty of the battery based on at least one of the determinedplurality of times.

The condition may be at least one of battery temperature and batterycurrent. Each time may be further associated with a voltage step of thebattery. The battery voltage may comprise a plurality of voltage stepsfrom a maximum voltage to a cut-off voltage. The change in voltage maycorrespond to a step size of the voltage step.

Determining a remaining time to empty of the battery may comprisesumming the times associated with each of the plurality of voltage stepsfrom a battery voltage to the cut-off voltage. The step of determiningthe plurality of times may comprise measuring a time taken for thechange in voltage. The determining the plurality of times may compriseretrieving at least one of the plurality of times from a memory.

The step of determining the plurality of times may comprise: measuring atime associated with a first battery condition and a first voltage step;retrieving a stored time associated with the first battery condition andthe first voltage step; comparing the stored time and the measured time;and if the times are different replacing the stored time with themeasured time.

The method may further comprise storing each of the plurality of timesin a table. The method may further comprise: determining if the firstbattery condition has been constant during the first voltage step; andif the first battery condition has been constant: measuring the time.Measuring the time may comprise receiving a timer value. The method mayfurther comprise: compensating a remaining capacity of the battery basedon the run time to empty.

The step of compensating may comprise: adjusting an amount by which thebattery has discharged since a previous calculation of remainingcapacity; calculating the remaining capacity based on the adjustedamount. The amount by which the battery has discharged may be calculatedas the amount of current drawn by the battery over a period of time. Theperiod of time may be one second.

The method may further comprise: determining a variation of the at leastone battery condition since the previous calculation of remainingcapacity; and if there is a variation: compensating the amount by whichthe battery has discharged.

According to a second aspect, a method comprises: determining an amountby which a battery at a first battery condition has discharged since aprevious calculation of remaining capacity of the battery; determining avariation of the first battery condition since the previous calculationof remaining capacity; and if there is a variation: retrieving aplurality of times associated with the first battery condition from amemory, each of the plurality of times associated with a respective oneof a plurality voltage steps from the battery voltage to a cut-offvoltage; and compensating a remaining capacity of the battery based onthe retrieved time.

The step of compensating may comprise calculating a run time to empty ofthe battery and compensating the remaining capacity based on the runtime to empty.

According to a third aspect, there is provided an apparatus comprising:a processor configured to determine a plurality of times correspondingto a change in voltage of a battery, each time associated with acondition of the battery; and calculate a remaining time to empty of thebattery based on at least one of the determined plurality of times.

The condition may be at least one of battery temperature and batterycurrent. Each time may be further associated with a voltage step of thebattery. The battery voltage may comprise a plurality of voltage stepsfrom a maximum voltage to a cut-off voltage. The change in voltage maycorrespond to a step size of the voltage step.

The processor may be further configured to determine the remaining timeto empty of the battery by summing the times associated with each of theplurality of voltage steps from a battery voltage to the cut-offvoltage. The processor may be configured to determine the plurality oftimes by measuring a time taken for the change in voltage. The processormay be further configured to determine the plurality of times byretrieving at least one of the plurality of times from a memory.

The processor may be configured to determine the plurality of times bymeasuring a time associated with a first battery condition and a firstvoltage step; retrieving a stored time associated with the first batterycondition and the first voltage step; comparing the stored time and themeasured time; and if the times are different replacing the stored timewith the measured time. The processor may be further configured to storeeach of the plurality of times in a table.

The processor may be further configured to: determine if the firstbattery condition has been constant during the first voltage step; andif the first battery condition has been constant: measure the time. Theprocessor may be further configured to receive a timer value and measurethe time based on the received timer value. The processor may be furtherconfigured to compensate a remaining capacity of the battery based onthe run time to empty.

The processor may be configured to compensate the remaining capacity byadjusting an amount by which the battery has discharged since a previouscalculation of remaining capacity and calculating the remaining capacitybased on the adjusted amount. The amount by which the battery hasdischarged may be calculated as the amount of current drawn by thebattery of a period of time. The period of time may be one second.

The processor may be further configured to determine a variation of theat least one battery condition since the previous calculation ofremaining capacity; and if there is a variation: compensate the amountby which the battery has discharged. The apparatus may further comprise:a memory configured to store at least one of the plurality of times. Theapparatus may further comprise a timer configured to measure an amountof time taken for the change in voltage of the battery.

According to a fourth aspect, an apparatus comprises: a battery manager,the battery manager comprising: a memory; and a processor configured todetermine an amount by which a battery at a first battery condition hasdischarged since a previous calculation of remaining capacity of thebattery; determine a variation of the first battery condition since theprevious calculation of remaining capacity; and if there is a variation:retrieve a plurality of times associated with the first batterycondition from the memory, each of the plurality of times associatedwith a respective one of a plurality voltage steps from the batteryvoltage to a cut-off voltage; and compensate a remaining capacity of thebattery based on the retrieved times.

The remaining capacity may be compensated by calculating a run time toempty of the battery and compensating the remaining capacity based onthe run time to empty.

According to a fifth aspect, an apparatus comprises: processor means fordetermining a plurality of times corresponding to a change in voltage ofa battery, each time associated with a condition of the battery, andcalculating a remaining time to empty of the battery based on at leastone of the determined plurality of times.

According to a sixth aspect, an apparatus comprises: a battery manager,the battery manager comprising: memory means; and processor means fordetermining an amount by which a battery at a first battery conditionhas discharged since a previous calculation of remaining capacity of thebattery, determining a variation of the first battery condition sincethe previous calculation of remaining capacity, and if there is avariation: retrieving a plurality of times associated with the firstbattery condition from the memory means, each of the plurality of timesassociated with a respective one of a plurality voltage steps from thebattery voltage to a cut off voltage, and compensating a remainingcapacity of the battery based on the retrieved times.

According to a seventh aspect, a computer program product comprises acomputer readable instructions for carrying out the steps of:determining a plurality of times corresponding to a change in voltage ofa battery, each time associated with a condition of the battery; andcalculating a remaining time to empty of the battery based on at leastone of the determined plurality of times.

The condition may be at least one of battery temperature and batterycurrent. Each time may be further associated with a voltage step of thebattery. The battery voltage may comprise a plurality of voltages stepsfrom a maximum voltage to a cut-off voltage. The change in voltage maycorrespond to a step size of the voltage step.

Determining a remaining time to empty of the battery may comprisesumming the times associated with each of the plurality of voltage stepsfrom a battery voltage to the cut-off voltage. The step of determiningthe plurality of times may comprise measuring a time taken for thechange in voltage. The determining the plurality of times may compriseretrieving at least one of the plurality of times from a memory.

The step of determining the plurality of times may comprise: measuring atime associated with a first battery condition and a first voltage step;retrieving a stored time associated with the first battery condition andthe first voltage step; comparing the stored time and the measured time;and if the times are different replacing the stored time with themeasured time.

The computer program product may comprise further computer readableinstructions for carrying out the step of storing each of the pluralityof times in a table. The computer program may further comprise furthercomputer readable instructions for carrying out the steps of:determining if the first battery condition has been constant during thefirst voltage step; and if the first battery condition has beenconstant: measuring the time. Measuring the time may comprise receivinga timer value.

The computer program product may further comprise further computerreadable instructions for carrying out the step of: compensating aremaining capacity of the battery based on the run time to empty. Thestep of compensating may comprise: adjusting an amount by which thebattery has discharged since a previous calculation of remainingcapacity; calculating the remaining capacity based on the adjustedamount.

The amount by which the battery has discharged may be calculated as theamount of current drawn by the battery of a period of time. The periodof time may be one second.

The computer program product may further comprise further computerreadable instructions for carrying out the step of: determining avariation of the at least one battery condition since the previouscalculation of remaining capacity; and if there is a variation:compensating the amount by which the battery has discharged.

According to an eighth aspect, a computer program product comprises acomputer readable instructions for carrying out the steps of:determining an amount by which a battery at a first battery conditionhas discharged since a previous calculation of remaining capacity of thebattery; determining a variation of the first battery condition sincethe previous calculation of remaining capacity; and if there is avariation: retrieving a plurality of times associated with the firstbattery condition from a memory, each of the plurality of timesassociated with a respective one of a plurality voltage steps from thebattery voltage to a cut-off voltage; and compensating a remainingcapacity of the battery based on the retrieved time.

The step of compensating may comprise calculating a run time to empty ofthe battery and compensating the remaining capacity based on the runtime to empty.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example of a battery pack;

FIG. 2 shows a flow diagram of the calculation of a remaining capacityof the battery;

FIG. 3 shows a flow diagram of compensating a remaining capacity; and

FIG. 4 shows a flow diagram of a method used to update a table.

DETAILED DESCRIPTION OF THE DRAWINGS

Embodiments provide a battery pack management system that providesinformation such as remaining capacity and/or run time to empty for abattery. In embodiments a time taken for a battery voltage to drop athreshold amount may be measured and used to determine a remainingcapacity of the battery. The time may be associated with a temperatureand current of the battery.

In some embodiments the remaining capacity of a battery may becalculated by monitoring a discharge of the battery. For example,current drawn from the battery may be monitored over a period of timeand an initial amount by which the battery has been discharged may becalculated based on this. Compensation of this initial amount may becarried out in order to take into account factors such as temperature,self-discharge rate and age of the battery.

The compensation may be carried out in response to a table. The tablemay store information relating to factors that may affect the batteryperformance. For example, the table may contain information regarding atime taken for the battery to drop a voltage level while discharging.The time may be associated with a temperature and discharge current. Inembodiments the table may be updated throughout the battery operation.For example the table may be updated corresponding to a number ofcharge/discharge cycles of the battery. This may provide an indicationof the change in battery performance with age.

FIG. 1 shows an example of a battery pack 100. The battery pack 100comprises a battery 101. The battery 101 may be a single or a multi-cellbattery. In some embodiments the battery 101 is a lithium ion (Li-ion)battery. However it will be appreciated that any suitable battery may beused. In some embodiments the battery pack 100 is for use with aportable device. For example the battery pack 100 may be suitable foruse in powering portable devices such as PDAs, laptops, mobile phones,pagers, netbooks, tablets, satellite navigation handsets and othersimilar devices. Alternatively the battery pack may be used as a back-uppower source to stationery devices or devices without access to mainspower.

The battery pack 100 may further comprise a controller 102. Thecontroller 102 may be an integrated circuit such as a microcontroller,application specific integrated circuit, or combination thereof. Thecontroller 102 may have access to a storage component 103. The storagecomponent may be part of the controller 102 or may be a separatecomponent. The storage component may be any appropriate memory, forexample EEPROM or RAM.

The controller 102 may be connected to the battery 101. The controller102 may be connected to the battery 101 via in-built or external sensorsand may be capable of measuring characteristics of the battery such as avoltage, current, temperature and/or other characteristics. Thecontroller 102 may also be connected to a processor of a device forwhich the battery provides power. This controller 102 may be connectedto the processor via a connection 104.

It will be appreciated that the battery pack may optionally comprisepackaging for the protection of the battery pack and the insertion ofthe battery pack into a portable device. For example the battery pack100 may further comprise a housing with connectors for the physicalconnection and retention of the battery pack 100 within a device. Itwill also be appreciated that additional circuitry may be implemented inthe battery pack 100.

The connection 104 may provide a communication medium between thebattery pack controller 102 and a processor of a device using powerprovided by the battery pack 100.

In some embodiments connection 104 is a system bus. In some embodimentsthe system bus 104 may be compliant with the smart battery system andmay be a smart battery system standard compliant bus.

The smart battery system standard is a standard for the implementationof battery management and comprises a number of standard commands forcommunication between a host processor and a battery pack. For example,the smart battery system standard provides commands for the display of aremaining battery capacity.

The smart battery data specification may have a number of commands whichmay be implemented over the bus 104. Typically communication between thecontroller 102 and a processor may include a number of commands. Forexample commands relating to the request for information such astemperature, voltage, average current, remaining capacity of thebattery, full charge capacity and run time to empty may be requestedover the bus 104. It will be appreciated that other commands may berequested over this bus and these commands are by way of example only.These commands may be in line with the smart battery system standards.Alternatively communication over connection 104 may be implemented inline with other standards or proprietary communication protocols.

The battery pack 100 may be capable of carrying out a number offunctions. For example the battery pack 100 may carry out measurementsof the battery voltage, current drawn from the battery and/ortemperature. It will be appreciated that these measurements may becarried out by suitable circuitry of the battery pack 100. Themeasurements may be carried with individual periodicity, for exampleevery second, or may be in response to commands received over the bus104.

The battery pack 100 may also check threshold levels for batteryprotection. This may occur during a charging cycle in order to preventthe overcharging of the battery, for example the battery pack 100 maydisconnect the battery from a charger once the battery is fully charged.Alternatively or additionally this may occur during a discharging cyclein order to prevent the device drawing more current from the batterypack than the allowed limit. The battery pack 100 may also calculatecharacteristics such as a capacity of the battery. It will beappreciated that this is by way of example only and the battery maycarry out other or additional functions.

In some embodiments, the battery pack controller 102 may receivemeasurements from functional circuitry of the battery pack 100 andcommunication over the connection 104. The controller 102 may beconfigured to calculate characteristics such as run time to empty and/ora remaining capacity. The battery pack controller may receivemeasurements from the functional circuitry of the battery pack andcommands relating to management of the battery pack over the connection104. In some embodiments the commands may relate to information requiredby a host controller communicating with the battery pack controller 102and may be requests for example requests for a run time to empty or aremaining capacity of the battery. The battery pack controller 102 maybe configured to calculate information regarding the battery based onthe received commands and measurements and may communicate thisinformation to the host controller.

In other embodiments a host controller may be configured to calculateinformation about the battery. The host controller may communicatecommands to the battery pack, for example commands for measurements ofthe battery. The host controller may then calculate information aboutthe battery pack, for example a run time to empty or a remainingcapacity.

For example some embodiments may be implemented in single cell batterysystems for example mobile phone. In these embodiments a host processormay calculate battery information for example remaining capacity. Otherembodiments may be implemented in multi-cell battery systems for examplenotebooks. In these embodiments the battery information calculation maybe carried out by a battery management controller associated with thebattery pack. In systems where a host processor consumes considerablecurrent a battery management controller such as controller 102 may beimplemented in order to calculate battery information. This may allowthe determination of battery information while the host processor is instandby mode.

FIG. 2 shows an example of a method for calculating a remaining capacityof a battery. The method may be carried out by a battery pack controller102, a host controller or a combination of the battery pack controller102 and host controller. It will be appreciated that FIG. 2 is by way ofexample and other methods may be used to calculate remaining capacity.

The method starts in step 201 and then proceeds to step 202 where it isdetermined whether the battery is charging or discharging.

If the system is being discharged, the method progresses to step 203where a discharged capacity is calculated.

The discharged capacity is a measure of the amount by which the batteryhas discharged since the most recent calculation of remaining capacity.The remaining capacity may be iteratively calculated by reducing thevalue of remaining capacity in accordance with the amount the batteryhas discharged since remaining capacity was last calculated. When abattery is fully charged, the value of remaining capacity may be set toa full charge capacity of the battery. This may be a known valueprovided by the battery manufacturer. Alternatively the full chargecapacity may be determined by measuring the charge it takes to fullycharge the battery from a fully discharged condition. In someembodiments the full charge capacity may be the charge held by thebattery when the battery voltage is at a maximum and a charging currentis close to 0 A.

At step 203 the discharged capacity is calculated. In some embodimentsthe discharged capacity is calculated as follows:

$\begin{matrix}{{DgCap} = {\int_{t_{1}}^{t_{2}}{I\ {\mathbb{d}t}}}} & (1)\end{matrix}$where DgCap is the amount by which the battery has discharged since thelast calculation of remaining capacity, t1 and t2 are the respectivestart and end time for the measurement of discharge and I is the currentdrawn from the battery.

Once the discharged capacity is calculated at step 203 the methodprogresses to step 204 where the discharged capacity is compensated. Theamount by which a battery is discharged may be affected by factors inaddition to an amount of current drawn from the battery. For example, abattery may have a self-discharge rate where the battery spontaneouslydischarges. In addition, the capacity of the battery may be affected byfactors such as the level of the current drawn from battery as well asthe temperature and/or age of the battery. The coulombic efficiency ofthe battery may change with time. Due to the above factors the remainingbattery capacity accuracy can have an error more than 5%. Thecompensation at step 203 may take into account some or all of thesefactors and adjust the discharged amount and/or remaining capacity ofthe battery accordingly.

Once compensation has been carried out at step 204, the methodprogresses to step 205 where the remaining capacity of the battery iscalculated. The remaining capacity may be calculated as follows:remainingcapacity(i+1)=remainingcapacity(i)−DgCap  (2)where remainingcapacity(i) is the previous amount of capacity remainingin the battery and remainingcapacity(i+1) is the updated remainingcapacity.

The method then progresses to 208, where the method may loop back to thestart 201 in order to continue the calculation of the discharge.

If it is determined at step 202 that the battery is charging, the methodprogresses to step 206. It will be appreciated that steps 206 and 207 ofthe charging mode are similar to steps 203 and 205 of the dischargingmode, however the current measured is the current drawn by the battery.

At step 206 a charged capacity of the battery is calculated. The chargedcapacity is a measure of the increase in charge of the battery since theremaining capacity was last calculated and may be calculated as follows:

$\begin{matrix}{{CgCap} = {\int_{t_{1}}^{t_{2}}{I\ {\mathbb{d}t}}}} & (3)\end{matrix}$where CgCap is the amount of by which the battery charge has increasedover the period of time t2-t1 and I is the current drawn by the batteryover that period.

The method then progresses to step 207 where CgCap is used to calculatethe remaining capacity. Similarly to equation 2, the remaining capacitymay be calculated as:remainingcapacity(i+1)=remainingcapacity(i)+CgCap   (4)where remainingcapacity(i) is the remaining capacity calculated in theprevious iteration and remainingcapacity(i+1) is the remaining capacitycalculated for this iteration taking into account the charge CgCap addedsince the last iteration. In some embodiments it may be determinedwhether a voltage of the battery has reached a maximum value and/or ifthe charging current is converging on 0 A. In this case, the value ofremaining capacity may be considered at a full charging capacity.

The method then progresses to step 208 where it may loop back to step201 and calculate the remaining capacity for the next measurement. Itwill be appreciated that the loop from step 201 to 208 may be repeatedperiodically. In some embodiments the remaining capacity may becalculated at a set period and t2-t1 may be equal to that set period.For example the remaining capacity may be calculated every second andthe discharged capacity or charged capacity may be calculated as theintegral of the current drawn from or by the battery over 1 second. Itwill be appreciated that other time periods may be used.

It will also be appreciated that the period for calculating remainingcapacity may change according to system performance. For example wherethe host system is power heavy and draws a high current from thebattery, the remaining capacity may be calculated more often. In afurther example if the current drawn is constant, measurements may bemade in larger time periods whereas if the current is dynamic,measurements may be made more often.

In some embodiments for example the controller 102 may measure thecurrent once every second and the discharge/charge capacity calculationmay be carried out every second. In other embodiments the current may bemeasured for example every 5 seconds. It will be appreciated that thetime over which each calculation of the discharge is calculated may beselected by the controller 102. It will also be appreciated that thetime period for calculating remaining capacity during a discharging modemay be different to the a time period for calculating the remainingcapacity during a charging mode.

In some embodiments the value of remaining capacity may be stored in thememory 103. The remaining capacity may be provided to the processor ofthe device in which the battery is implemented in response a request fora remaining capacity of the device 104. For example in the smart busmanagement system, the remaining capacity may be retrieved from thememory 103 and sent to a host processor in response to aremainingcapacity command over bus 104. In other embodiments the valueof remaining capacity may be sent to the host processor over the bus 104whenever the value of remaining capacity is updated.

In some embodiments the remaining capacity may be given as a percentageof the full charge capacity. In some embodiments the full chargecapacity of the battery may be updated as the battery ages and theremaining capacity may be given as a percentage of the updated fullcharge capacity. In alternative embodiments the remaining capacity maybe given as a value in mAh or such similar measurements.

In some embodiments after the battery has aged, for example every 50 to100 cycles, the full charge capacity may be compensated based on the ageof the battery.

FIG. 3 illustrates a method of providing compensation in the dischargingmode of a battery pack 100. It will be appreciated that the compensationmay correspond to the compensation carried out at step 204 of FIG. 2.

At step 301 the method starts. The method progresses to step 302 whereit is determined whether there has been a variation in temperatureand/or current since the previous measurement.

In some embodiments a first measurement of temperature and/or currentmay be taken at a first time corresponding to a first calculation ofremaining capacity and a second measurement of temperature and/orcurrent may be taken at a second time corresponding to a subsequentcalculation of remaining capacity. A change in the temperature and/orcurrent may be determined and compared to a threshold valuecorresponding to an allowable threshold for variation in the temperatureand/or current values.

If the variation is great, for example if the variation is higher thanthe threshold, the method may progress to step 303. If the variation issmall, for example below the threshold then the method progresses tostep 304.

Step 302 may allow a compensation due to a change in temperature and/orcurrent to be carried out only when a change in temperature and/orcurrent has occurred. For example if the temperature has remainedconstant to the previous measurement, a compensation for a change intemperature may not be required as the value of remaining capacity mayhave already been adjusted to take into account the temperature at thistime. Similarly, if the current has remained constant, a compensationfor a change in current may not be required. Where little variation isdetermined at step 302, the method progresses to step 304.

If there has been a change in temperature and/or current, compensationmay be carried out for the battery behavior under the changedenvironment. A current of a battery may directly affect a discharge rateof the battery and may also affect a remaining capacity of the battery.A change in current or temperature may therefore affect the remainingcapacity of the battery that is not reflected in the change indischarge. For example the capacity of the battery itself may bereduced, thus there may be different remaining capacities for a batteryunder different temperature conditions even if they have the samedischarge capacity DgCap.

In embodiments, a discharge capacity DgCap of the battery may becompensated in order to adjust a value of remaining capacity to reflectchanges in the battery environment.

The method progresses to step 303 where a compensation is carried outdue to temperature and/or current conditions. In some embodiments thecompensation may include compensation due to aging of the battery. Forexample batteries of differing ages may have different characteristicsunder similar current and/or temperature conditions. The age of thebattery may correspond or be determined by the amount of times a batteryhas been charged and/or discharged.

Once compensation has been carried out for the temperature and/orcurrent, the method progresses to step 304. At step 304 a self-dischargerate of the battery is taken into account.

A self-discharge rate of a battery may be a rate of spontaneousdischarge of a battery. This may be due to the discharge of chemicalreactions within the battery. The self-discharge rate is typicallyprovided by the battery manufacturer and may be provided as a percentageof the battery capacity that is discharged per day. The uncompensateddischarge capacity of the method may only take into account a dischargedue to a current drawn from the battery. The self-discharge compensationof step 304 may adjust the value of discharge capacity to reflect thedischarge due to the self-discharge of the battery. The self-dischargerate may be known by a battery manufacturer and may be implementedaccording to conditions in the battery.

At step 304, the discharged rate may be adjusted with regards to theself-discharge undergone by the battery. In some embodiments, the selfdischarge may be adjusted for a temperature of the battery. The batterypack may measure the temperature of the battery and base the adjustmenton this.

At step 304 the discharge capacity may be adjusted to include adischarge due to the self-discharge rate for the period of time sincethe last calculation of remaining capacity. For example, where thedischarge capacity is calculated every second, the discharge capacitymay be adjusted by adding an amount of the self-discharge rate persecond to that value.

It will be appreciated that the compensation due to self-discharge maybe optional. In some embodiments a self-discharge may be compensated forthrough other means or not at all. The method may then proceed to step305. It will be appreciated the step 305 may return to the method ofFIG. 2 and progress to step 205.

If a variation of temperature and/or current is determined at step 302,the method progresses to step 303 where a compensation is carried outbefore the self-discharge is taken into account at step 304.

In order to provide a compensation for changes in a remaining capacityof the battery due to factors such as for example temperature, current,aging and/or other factors, the discharged capacity is compensated atstep 303.

In order to provide this compensation, embodiments may make use ofmeasurements of an operation of the battery. These measurements may bestored in the memory 103. In some embodiments measurements may be storedin a table. Table 2 shows an example of such a table.

TABLE 2 (−) 20° C. 0° C. 1° C. 21° C. 31° C. 41° C. <(−) to to to to toto 20° C. 0° C. 10° C. 20° C. 30° C. 40° C. 50° C. >55° C. 0.1 C Time inseconds 0.2 C 0.3 C 0.4 C 0.5 C 0.6 C 0.7 C 0.8 C 0.9 C 1 C 1.25 C 1.5 C1.75 C 2 C

Table 2 has columns corresponding to a temperature range of a batteryand rows corresponding to the average current of the battery. Theaverage current may be the current measured over a period of time (forexample 10 seconds). The current in the table is given as a C-rate whereC is the capacity of the battery. For example a battery with a capacityC of 1000 mAh will have a C rate of 1000 mA. 0.1 C corresponds to acurrent of 100 mA, 0.2 C to 200 mA, etc. It will be appreciated thatthis is by way of example only and current may be given as a currentrange for the battery.

Table 2 stores an amount of time taken for the battery voltage todecrease for a given voltage step at a given average current andtemperature. In some embodiments the given voltage step may be chosen as0.2 volts. It will be appreciated that this is by way of example and thevoltage step may be chosen to be other values. The voltage step may beprogrammable. In some embodiments, the size of the voltage step may beselected based on a trade-off between an accuracy required for theremaining capacity and memory available for the table.

While discharging, a battery voltage may decrease from a maximum voltageto a cut-off voltage. For example a battery with a maximum voltage of4.2V, a cut-off voltage of 3V and a voltage step of 0.2V, may undergo avoltage drop from 4.2V to 4V, 4V to 3.8V, 3.8V to 3.6V, 3.6V to 3.4V,3.4V to 3.2V and 3.2V to 3V.

Measurements may be stored for each voltage drop undergone by thebattery. For example a first table like that of FIG. 2 may storemeasurements for the voltage drop from 4.2 to 4V, a second table likethat of FIG. 2 may store measurements for the voltage drop from 4 to3.8V, a third table like that of FIG. 2 may store measurements for thevoltage drop from 3.8 to 3.6V, a fourth table like that of FIG. 2 maystore measurements for the voltage drop from 3.6 to 3.4V, a fifth tablelike that of FIG. 2 may store measurements for the voltage drop from 3.4to 3.2V and a sixth table like that of FIG. 2 may store measurements forthe voltage drop from 3.2 to 3V.

Embodiments may therefore store measurements of a time taken for thebattery voltage to undergo a voltage drop under a range of current andtemperature conditions. These measurements may be stored for eachvoltage drop undergone by the battery from a maximum voltage to acut-off voltage. In some embodiments measurements for one or only someof the voltage drops may be stored. For example, while the time takenfor a voltage drop under a current and temperature may differ dependingon the actual battery voltage, in some embodiments the time taken fordrops in a certain voltage range may be similar.

Initial values of time for the table(s) may be provided by the batterymanufacturer. The initial values may be based on data from arepresentative sample of batteries. Each table may be updated in orderto take into account factors that may affect the battery over time suchas for example, the age of the battery and/or the number of times thebattery has been discharged. In this manner, the tables may provide anindication of the actual behavior of the battery. As the battery ages,or is affected by external or internal factors, the behavioral changesof the battery may be recorded in the table.

The tables may be used to adjust a value of the discharged capacityDgCap in order to compensate the value of remaining capacity to reflectactual battery behavior.

Each table stores, for each temperature and current pair, the amount oftime taken for the battery voltage to discharge one voltage step.

A run time to empty for a battery may be calculated by summing thestored time taken for the battery to drop each remaining voltage stepunder the current and temperature conditions. The remaining voltagesteps may be the number of voltage steps from the voltage of the batteryto a cut-off voltage.

For example, if a battery voltage is 3.8V and a run time to emptycommand is received, the run time to empty may be calculated by adding atime measurement for a voltage drop from 3.8 to 3.6V, a time measurementfor a voltage drop from 3.6 to 3.4V, a time measurement for a voltagedrop from 3.4 to 3.2V and a time measurement for a voltage drop from 3.2to 3V. Each of the time measurements may correspond to a current andtemperature condition of the battery.

It will be appreciated that a current voltage of a battery will notalways map cleanly on a voltage step boundary. For example a voltage of3.8V has been exemplified however a run time to empty or remainingcapacity may be determined with the battery at a current voltage of 3.7volts which falls in the middle of a voltage step from 3.8 to 3.6V. Inthis case, the battery voltage may be rounded to the nearest step size.Alternatively the time associated with that step size may be scaledaccording to the actual battery voltage. For example the time associatedwith the 3.8V to 3.6V drop may be scaled by a factor of 0.5 as thebattery voltage of 3.7V is halfway through the step size of 0.2V.

Run time to empty may be the amount remaining for which the battery canprovide power.

Embodiments may use the run time to empty to calculate a remainingcapacity of the battery under the current and temperature condition. Itwill be appreciated that the stored measurements may also take intoaccount an age of the battery. The remaining capacity may be anindication of the ampere hours Ah the battery may provide. The remainingcapacity of the battery under the temperature and current conditions maybe calculated as follows:measuredremainingcapacity=runtimetoempty*averagecurrent  (5)where measured remaining capacity is the remaining capacity according tothe stored time measurements for the current and temperature of thebattery and average current is the average value of the current beingdrawn from the battery. For example the average current being drawn inthe last 10 measurements. In some embodiments runtimetoempty iscalculated in response to a runtimetoempty command or request from ahost system. It will be appreciated that the runtimetoempty in equation5 may be replaced by the sum of the measured times for the remainingvoltage steps.

The measured remaining capacity may be used to adjust the dischargecapacity DgCap such that the calculated remaining capacity remainingcapcity(i+1) is compensated. This compensation may be to adjust thevalue of remainingcapacity(i+1) to reflect the capacity of the batteryremaining as measured. The remainingcapacity (i+1) may be adjusted totake into account factors affecting remaining battery capacity inaddition to the measurement of DgCap. For example the discharge capacitymay be adjusted as follows:DgCap(adjusted)=(remainingcapacity(i)−measuredremainingcapacity)+DgCap  (6)where measuredremainingcapacity is calculated as in equation (5).DgCap(adjusted) may be the amount by which the current value ofremaining capacity remaingingcapacity(i) must be adjusted to bring it inline with the remaining capacity according to the Table 2.DgCap(adjusted) may be returned to step 205 in FIG. 2 whereremainingcapacity(i+1) is calculated.

It will be appreciated that the above equations are by way of exampleonly and other means may be used to calculate a discharged capacityDgCap compensation needed.

Each relevant table may be updated for every voltage step correspondingto that table. In some embodiments a table may not be updated if acurrent or temperature has varied greatly during the time taken drop thevoltage step. In this case a time measurement may not be indicative ofthe time taken at a specific current and temperature.

FIG. 4 provides a method for maintaining and updating the tables storingthe time measurements. In some embodiments the method of FIG. 2 isrepeated for each drop in the battery voltage corresponding to thevoltage step size. In some embodiments a battery pack controller mayhave a timer. A first value of the time may be taken at the start of avoltage drop and a second value may be taken at the end of the voltagedrop. The controller may calculate a time taken for a voltage drop fromthese values. Alternatively, the timer may be reset at the start of eachvoltage drop. In some embodiments the voltage may be monitored byfunctional circuitry of the battery pack.

At step 400 the method starts. In some embodiments a determination maybe made whether a host processor is in a low power mode. If the hostprocessor is in the low power mode, the method may not start. A hostprocessor of a device powered by the battery pack 100 may go into a lowpower mode, for example a sleep mode, when the device is not drawingmuch current. In some embodiments the tables are not updated in the lowpower mode. This may be because a low power mode may not be indicativeof a typical power use of the host device.

The method progresses to step 401 where it is determined whether therehas been a variation in a current or temperature of the battery during avoltage drop. A large variation may indicate that the measured time isnot indicative of behavior at a specific current or temperature butrather of transient current and/or temperature. The variation may bemeasured for example by comparing a change in the temperature and/orcurrent to a threshold. It will be appreciated that the threshold may beset corresponding to the implementation of the battery and accuracyrequirements for the battery measurements.

If it is determined that there has not been a substantial variation themethod progresses to step 402. At step 402 a time period for the batteryvoltage to undergo a voltage drop corresponding to a voltage step ismeasured. In some embodiments this may be done by using a timer of thecontroller 102 in conjunction with a battery voltage measurement. In oneexample the timer may be started at a first voltage and stopped when thefirst voltage has decreased by the voltage step. It will be appreciatedthat the timer may run continuously and a start and stop time monitoredfor each voltage step.

Once a time taken to drop a voltage step is measured, the methodprogresses to step 403.

At step 403 a time stored in the table corresponding to the voltage dropis retrieved. The time may correspond to the temperature and current ofthe battery. The retrieved time is compared to the time measured at step402. If the retrieved time and measured time are substantially similar,the method returns to step 400 and repeats for the next voltage drop. Inthis case the retrieved time is retained at the table value an in block404.

If the retrieved time and the measured time are different, the methodprogresses to step 405.

It will be appreciated that in some embodiments, a difference betweenthe retrieved time and the measured time may be compared to a thresholdto determine whether the times are different or substantially similar.It will be appreciated that the threshold may be set according to systemrequirements. For example the required accuracy of the values such asremaining capacity and a run time to empty may be considered in light ofthe processing resources.

At step 405 time measured at step 402 is stored in the table.

In some embodiments a difference between the measured time and retrievedtime ΔT may also be calculated.

The stored times may also be used to calculate responses to othercommands. For example in addition to calculating a run time to empty forthe battery in order to calculate the measuredremainingcapacity, a runtime to empty may be calculated in response to a runtimetoempty command.For example, using the smart battery system standard, a runtimetoemptycommand may be received from a host processor and the runtime to emptymay be calculated. In some embodiments the runtime to empty may becalculated by adding all table values of different voltage steps for thesame current and temperature before the cut-off voltage is reached bythe time value in the table.

In some embodiments, a runtimetoempty command may be received before thetable is updated. In this case ΔT may be used to calculateruntimetoempty of the battery.

In some embodiments the time taken to drop a voltage step may becalculated by using a timing peripheral in the controller.

In embodiments the table may be stored in the storage unit of thecontroller. The controller may then calculate values such as a remainingtime to empty where a remaining capacity using the values stored in thetable. The controller may also monitor the voltage across the batterypack as per FIG. 4 in order to update the table periodically.

It will be appreciated that a battery pack controller may comprise aprocessor for carrying out embodiments. The processor may execute acomputer program for determining battery information.

It will be appreciated that embodiments relate to compensating adischarge amount of a battery to take into factors that may affect thedischarge rate or remaining capacity. Although a method of calculating adischarge has been given as the integral of current over time, it willbe appreciated that other methods may be used to calculate an initialdischarge.

What is claimed is:
 1. A method, comprising: measuring a voltage of abattery using measurement circuitry associated with the battery in realtime while the battery is discharging; determining in real time whilethe battery is discharging and while the voltage of the battery is beingmeasured, and using a processor coupled to the measurement circuitry, aplurality of time periods, each time period being determined as afunction of the measured voltage of the battery that was measured inreal time while the battery is discharging and each time periodcorresponding to an elapsed time for the measured voltage of the batteryto change in a voltage step from an initial voltage for that time periodto a final voltage for that time period, and each time period beingassociated with a first condition of the battery; calculating in realtime while the battery is discharging and while the voltage of thebattery is being measured, using the processor, a run time to empty ofthe battery based on a given one of the determined plurality of timeperiods that was determined as a function of the measured voltage of thebattery that was measured in real time while the battery is discharging;compensating in real time while the battery is discharging and while thevoltage of the battery is being measured, using the processor, aremaining capacity of the battery based on the calculated run time toempty of the battery, the compensating being performed due to selfdischarge of the battery, based upon lack of variation of the firstcondition associated with the given one of the determined plurality oftime periods used in calculating the run time to empty of the battery,the given one of the determined plurality of time periods having beendetermined as a function of the measured voltage of the battery that wasmeasured in real time while the battery is discharging; compensating inreal time while the battery is discharging and while the voltage of thebattery is being measured, using the processor, the remaining capacityof the battery based on the calculated run time to empty of the battery,the compensating being performed due to the first condition of thebattery, associated with the given one of the determined plurality oftime periods used in calculating the run time to empty, based uponvariation of the first condition, wherein the self discharge of thebattery is a second condition of the battery, the given one of thedetermined plurality of time periods having been determined as afunction of the measured voltage of the battery that was measured inreal time while the battery is discharging.
 2. The method of claim 1,wherein the first condition is at least one of battery temperature andbattery current.
 3. The method of claim 1, wherein the voltage of thebattery comprises a plurality of voltage steps from a maximum voltage toa cut-off voltage.
 4. The method of claim 3, wherein determining the runtime to empty of the battery comprises summing each time period.
 5. Themethod of claim 1, wherein determining the plurality of time periodscomprises retrieving at least one of a plurality of times from a memory.6. The method of claim 1, wherein determining the plurality of timeperiods comprises: measuring a period of time associated with the firstcondition and a change of voltage of the battery in a first voltagestep; retrieving a stored period of time associated with the firstcondition and the first voltage step; comparing the stored period oftime and the measured period of time; and replacing the stored period oftime with the measured period of time based upon a differencetherebetween.
 7. The method of claim 6, wherein measuring the period oftime comprises receiving a timer value.
 8. The method of claim 1,further comprising storing each of the plurality of time periods in atable.
 9. The method of claim 1, wherein the step of compensatingcomprises: adjusting an amount by which the battery has discharged sincea previous calculation of remaining capacity; calculating the remainingcapacity based on the adjusted amount.
 10. The method of claim 9,wherein the amount by which the battery has discharged is calculated asan amount of current drawn by the battery over a time period used incalculating the run time to empty.
 11. The method of claim 10, whereinthe time period used in calculating the run time to empty is one second.12. The method of claim 9, further comprising: determining a variationof the first condition of the battery since the previous calculation ofremaining capacity; and compensating the amount by which the battery hasdischarged in response to the variation.
 13. An apparatus, comprising:measurement circuitry configured to measure a voltage of a battery inreal time while the battery is discharging; a processor coupled to themeasurement circuitry and configured to determine in real time, whilethe battery is discharging and while the voltage of the battery is beingmeasured, whether a first condition of the battery has changed over atime period corresponding to an elapsed time for the measured voltage ofthe battery to change in a voltage step from an initial voltage for thattime period to a final voltage for that time period, measure the timeperiod in response to the first condition of the battery changing, andcalculate, in real time while the battery is discharging and while thevoltage of the battery is being measured, a run time to empty of thebattery based on the measured time period, compensate, in real timewhile the battery is discharging and while the voltage of the battery isbeing measured, a remaining capacity of the battery based on thecalculated run time to empty of the battery, the compensating beingperformed due to self discharge of the battery and based upon lack ofvariation of the first condition during the time period, and compensate,in real time while the battery is discharging, the remaining capacity ofthe battery based on the calculated run time to empty of the battery forthe first condition of the battery, wherein the self discharge of thebattery is a second condition of the battery different than the firstcondition of the battery.
 14. The apparatus of claim 13, wherein thefirst condition of the battery is at least one of battery temperatureand battery current.
 15. The apparatus of claim 13, wherein each timeperiod is further associated with a voltage step of the battery.
 16. Theapparatus of claim 15, wherein the voltage of the battery comprises aplurality of voltage steps from a maximum voltage to a cut-off voltage.17. The apparatus of claim 16, wherein the change in voltage correspondsto a step size of the voltage step.
 18. The apparatus of claim 17,wherein the time period is one second.
 19. The apparatus of claim 16,wherein the processor is further configured to determine the run time toempty of the battery by summing the time periods associated with each ofthe plurality of voltage steps from a battery voltage to the cut-offvoltage.
 20. The apparatus of claim 16, wherein an amount by which thebattery has discharged is calculated as an amount of current drawn bythe battery during a time period.
 21. The apparatus of claim 16, whereinthe processor is further configured to determine a variation of thefirst condition of the battery since a previous calculation of remainingcapacity; and if there is a variation then compensate an amount by whichthe battery has discharged.
 22. The apparatus of claim 15, wherein theprocessor is configured to determine the time periods by measuring atime associated with the first condition of the battery and a firstvoltage step; retrieve a stored time associated with the first conditionof the battery and the first voltage step; compare the stored time andthe measured time; and if the times are different replace the storedtime with the measured time.
 23. The apparatus claim 22, wherein theprocessor is further configured to: determine if the first condition ofthe battery has been constant during the first voltage step; and if thefirst condition of the battery has been constant then measure the time.24. The apparatus of claim 22, wherein the processor is furtherconfigured to receive a timer value and measure the time based on thereceived timer value.
 25. The apparatus of claim 24, further comprisinga timer configured to measure an amount of time taken for the change involtage of the battery.
 26. The apparatus of claim 15, wherein theprocessor is configured to compensate the remaining capacity of thebattery by adjusting an amount by which the battery has discharged sincea previous calculation of remaining capacity and calculate the remainingcapacity based on the adjusted amount.
 27. The apparatus of claim 13,wherein the processor is configured to determine the time periods bymeasuring a time taken for the change in voltage.
 28. The apparatus ofclaim 13, wherein the processor is further configured to determine thetime periods by retrieving at least one of a plurality of times from amemory.
 29. The apparatus of claim 13, further configured to store eachof the time periods in a table.
 30. The apparatus of claim 13, furthercomprising a memory configured to store at least one of the timeperiods.